//
// Created by mongobaba on 2021/6/6.
//

#include "unit_test.h"
#include "json_validator.h"

// 特殊情况
TEST(parse_exponent_empty) {
    json_validator validator("");
    ASSERT_EQ(true, validator.parse_exponent());
    ASSERT_EQ(std::string(""), validator.left());
}

// 没有e和后续内容
TEST(parse_exponent_no_e) {
    json_validator validator("x12");
    ASSERT_EQ(true, validator.parse_exponent());
    ASSERT_EQ(std::string("x12"), validator.left());
}

// 有e但符号不对
TEST(parse_exponent_error_sign) {
    json_validator validator("ex12");
    ASSERT_EQ(false, validator.parse_exponent());
    ASSERT_EQ(std::string("x12"), validator.left());
}

// 有e有符号但没后续数字
TEST(parse_exponent_no_digits) {
    json_validator validator("e+x");
    ASSERT_EQ(false, validator.parse_exponent());
    ASSERT_EQ(std::string("x"), validator.left());
}

// 有全部要素
TEST(parse_exponent_has_all) {
    json_validator validator("e+12x");
    ASSERT_EQ(true, validator.parse_exponent());
    ASSERT_EQ(std::string("x"), validator.left());
}
